package map;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Map接口：
 * 1.所有双列集合的顶级接口，规定了所有双列集合的共有功能
 * 2.Map体现的结构是一个多行两列的表格，其中左列称为key键，右列成为value值
 *  Map总是成对保存数据，每一对称为一个“Entry”，并且总是根据key获取对应的value
 *  3.Map要求：key不允许重复，但value可以重复--------重复与否的判断依据为equals（）+hashCode（）
 *  4.常用实现类：
 *      1）HashMap：不重复，无下标、无序（存取顺序不一致）
 *      2）LinkedHashMap：不重复、无下标、有序（存取顺序一致）
 */
public class MapDemo1 {
    public static void main(String[] args) {
        Map<String,Integer> map = new LinkedHashMap<>();
        //Map<String,Integer> map = new HashMap<>();
        map.put("语文",99);
        map.put("数学",100);
        map.put("英语",88);
        map.put("物理",96);
        map.put("化学",99);
        System.out.println(map);  //{物理=96, 数学=100, 化学=99, 语文=99, 英语=88}

        Integer value = map.put("物理",50);  //替换操作
        System.out.println(value);  //物理原来对应的值：96
        System.out.println(map);  //{物理=50, 数学=100, 化学=99, 语文=99, 英语=88}
        System.out.println(value);
        value = map.put("政治",99);
        System.out.println(value);  //若不是替换操作则返回null
        System.out.println(map);  //{政治=99, 物理=50, 数学=100, 化学=99, 语文=99, 英语=88}

    }
}
